const joi = require('joi');
const {
    User,validateUser
} = require('../../model/user.js');
const bcrypt = require('bcrypt');

module.exports = async (req, res, next) => {
    
    try {
        // 通过joi验证用户传来的数据
         await validateUser(req.body)
    } catch (err) {
         return next(JSON.stringify({
             path: '/admin/user-edit',
             message: err.message
         }));
    };
   
    
    
    // 根据邮箱地址验证是否创建过
    let user = await User.findOne({
        email: req.body.email
    });
    // 如果创建过
    if (user) {
        return next(JSON.stringify({
            path: '/admin/user-edit',
            message: '用户已存在'
        }));
    }
    
    // 对密码进行加密处理
    const salt = await bcrypt.genSalt(10);
    req.body.password = await bcrypt.hash(req.body.password, salt);
    
    // 将用户信息添加到数据库中
    await User.create(req.body);

    res.redirect('/admin/user');
    
}